package com.surprise.base.threadLocal;

import com.surprise.base.BaseDTO;

/**
 * BLContext.java
 * @author xuling
 * @since 2017年1月20日
 */
public class BLContext {

	/** 输入DTO */
	private BaseDTO inDto = null;
	
	/** SessionDTO */
	private BaseDTO sessionDto = null;

	/** 其他DTO */
	private BLContext other = null;
	
	/** 事件ID */
	private String eventId = null;
	
	/**
	 * 构造体
	 */
	public BLContext() {
	}

	protected BLContext(BLContext other) {
		this.other = other;
	}
	
	/**
	 * 输入DTO的获得
	 * @return 从页面获取的DTO的返回
	 */
	public BaseDTO getInDto() {
		BaseDTO ret = this.inDto;
		return ret;
	}

	/**
	 * 输入DTO的设定
	 * @param dto 输入DTO
	 */
	public void setInDto(BaseDTO dto) {
		this.inDto = dto;
	}
	
	/**
	 * SessionDto的获得
	 * @param dto
	 */
	public BaseDTO getSessionDto() {
		return this.sessionDto;
	}
	
	/**
	 * SessionDto的设定
	 */
	public void setSessionDto(BaseDTO dto) {
		this.sessionDto = dto;
	}
	
	/**
	 * 输出DTO的获得
	 * @return 输出DTO
	 */
	public BaseDTO getOutDto() {
		BaseDTO ret = null;
		if (this.other == null) {
			ret = (BaseDTO) ThreadLocalContext.getContext().get(ThreadLocalContext.OUTDTO);
		} else {
			ret = this.other.getOutDto();
		}
		return ret;
	}
	
	/**
	 * 事件ID的获得
	 * @return 事件ID
	 */
	public String getEventId() {
		return eventId;
	}

	/**
	 * 事件ID的设定
	 * @param eventId 事件ID
	 */
	public void setEventId(String eventId) {
		this.eventId = eventId;
	}
}
